package com.hiultra.archive.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hiultra.common.annotation.Excel;
import com.hiultra.common.annotation.Excels;
import com.hiultra.common.core.domain.BaseEntity;
import com.hiultra.common.core.domain.entity.ArcCatalog;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 卷宗管理对象 arc_dossier
 *
 * @author ls
 * @date 2022-07-28
 */
public class ArcDossier extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long dossierId;

    /**
     * 分类id
     */
    private Long catalogId;

    /**
     * 全宗号
     */
    private Long familyId;

    @Excels({
            @Excel(name = "全宗名称", targetAttr = "familyName"),
    })
    private ArcFamily family;
    @Excels({
            @Excel(name = "分类名称", targetAttr = "catalogName"),
    })
    private ArcCatalog catalog;
    /**
     * 卷宗号
     */
    @Excel(name = "卷宗号")
    private String dossierCode;

    /**
     * 题名
     */
    @Excel(name = "题名")
    private String dossierName;

    /**
     * 案卷档号
     */
    @Excel(name = "案卷档号")
    private String dossierNumber;

    /**
     * 保管年限
     */
    @Excel(name = "保管年限")
    private Integer saveYear;

    /**
     * 0开放，1秘密，2机密
     */
    @Excel(name = "密级", dictType = "secret_level")
    private Integer secretLevel;

    /**
     * 责任者
     */
    @Excel(name = "责任者")
    private String duty;

    /**
     * 机构或问题
     */
    @Excel(name = "机构或问题")
    private String matter;

    /**
     * 0-正常,1-删除
     */
    private Integer delflag;

    /**
     * 年度
     */
    @Excel(name = "年度")
    private String year;

    /**
     * 卷宗顺序号
     */
    @Excel(name = "卷宗顺序号")
    private Long dossierNo;

    /**
     * 卷内文件数
     */
    @Excel(name = "卷内文件数")
    private String fileNumDossier;

    /**
     * 卷内文件页数
     */
    @Excel(name = "卷内文件页数")
    private String pageNumDossier;

    /**
     * 起始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "起始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    public String getYear() {
        return year;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public Long getDossierNo() {
        return dossierNo;
    }

    public void setDossierNo(Long dossierNo) {
        this.dossierNo = dossierNo;
    }

    public String getFileNumDossier() {
        return fileNumDossier;
    }

    public void setFileNumDossier(String fileNumDossier) {
        this.fileNumDossier = fileNumDossier;
    }

    public String getPageNumDossier() {
        return pageNumDossier;
    }

    public void setPageNumDossier(String pageNumDossier) {
        this.pageNumDossier = pageNumDossier;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public ArcCatalog getCatalog() {
        return catalog;
    }

    public void setCatalog(ArcCatalog catalog) {
        this.catalog = catalog;
    }

    public ArcFamily getFamily() {
        return family;
    }

    public void setFamily(ArcFamily family) {
        this.family = family;
    }

    public void setDossierId(Long dossierId) {
        this.dossierId = dossierId;
    }

    public Long getDossierId() {
        return dossierId;
    }

    public void setCatalogId(Long catalogId) {
        this.catalogId = catalogId;
    }

    public Long getCatalogId() {
        return catalogId;
    }

    public void setFamilyId(Long familyId) {
        this.familyId = familyId;
    }

    public Long getFamilyId() {
        return familyId;
    }

    public void setDossierCode(String dossierCode) {
        this.dossierCode = dossierCode;
    }

    public String getDossierCode() {
        return dossierCode;
    }

    public void setDossierName(String dossierName) {
        this.dossierName = dossierName;
    }

    public String getDossierName() {
        return dossierName;
    }

    public void setDossierNumber(String dossierNumber) {
        this.dossierNumber = dossierNumber;
    }

    public String getDossierNumber() {
        return dossierNumber;
    }

    public Integer getSaveYear() {
        return saveYear;
    }

    public void setSaveYear(Integer saveYear) {
        this.saveYear = saveYear;
    }

    public void setSecretLevel(Integer secretLevel) {
        this.secretLevel = secretLevel;
    }

    public Integer getSecretLevel() {
        return secretLevel;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    public String getDuty() {
        return duty;
    }

    public void setMatter(String matter) {
        this.matter = matter;
    }

    public String getMatter() {
        return matter;
    }

    public void setDelflag(Integer delflag) {
        this.delflag = delflag;
    }

    public Integer getDelflag() {
        return delflag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("dossierId", getDossierId())
                .append("catalogId", getCatalogId())
                .append("familyId", getFamilyId())
                .append("dossierCode", getDossierCode())
                .append("dossierName", getDossierName())
                .append("dossierNumber", getDossierNumber())
                .append("saveYear", getSaveYear())
                .append("secretLevel", getSecretLevel())
                .append("duty", getDuty())
                .append("updateTime", getUpdateTime())
                .append("matter", getMatter())
                .append("delflag", getDelflag())
                .toString();
    }
}
